import { ref, computed } from "vue";
import { defineStore } from "pinia";

export const useCounterStore = defineStore(
  "counter",
  () => {
    const count = ref(1);
    const total = ref(10);
    const doubleCount = computed(() => count.value * 2);
    function increment() {
      count.value++;
    }
    function decrement() {
      count.value--;
    }

    return { count, total, doubleCount, increment, decrement };
  },
  {
    persist: {
      enabled: true, // 开启 enabled 之后，默认会对整个 Store 的 state 内容进行 sessionStorage 储存。
      strategies: [
        {
          // 自定义存储的 key，默认是 defineStore 的第一个参数，即 store.id
          key: "local",
          // 可以指定任何 extends Storage 的实例，默认是 sessionStorage
          storage: localStorage,
          // state 中的字段名，按组打包储存
          paths: ["count", "total"],
        },
      ],
    },
  }
);
